#pragma once
#include <iostream>
#include <string>
#include "MediaCenter.h"
using namespace std;

class Player {
public:
	Player(MediaCenter* md) : m_mediator(md) {
		m_mediator->addPlayer(this);
	}
	virtual ~Player() {
		m_mediator->removePlayer(this);
	}
	
	virtual bool PlayerChanged(const string& action) { return m_mediator->PlayerChanged(this, action);}
	
	virtual void start() = 0;
	virtual void stop() = 0;
	virtual void forward() = 0;
	virtual void rewind() = 0;

private:
	MediaCenter* m_mediator;
};